package br.com.nooclix.salon.domain.attendance;

import java.util.Calendar;
import java.util.List;

import br.com.nooclix.salon.domain.customer.Customer;
import br.com.nooclix.salon.domain.employee.Employee;
import br.com.nooclix.salon.domain.product.Product;
import br.com.nooclix.salon.domain.service.Service;
import br.com.nooclix.salon.infrastructure.AbstractRepostiry;

public interface AttendanceSheetRepository extends
		AbstractRepostiry<AttendanceSheet, Integer> {

	List<AttendanceSheet> findByStatus(String status);

	List<AttendanceSheet> findByPeriod(Calendar start, Calendar end);

	// busca por reservas
	List<AttendanceSheet> findBookingByCriterion(Customer customer,
			Calendar start, Calendar end);

	// Listar reservas
	List<AttendanceSheet> listBookings();

	List<AttendanceSheet> findByEmployeeAndPeriod(Employee employee,
			Calendar start, Calendar end);
	List<AttendanceSheet> findBookingByStatus(Customer customer, 
			Calendar start, Calendar end, String status);
	
	List<AttendanceSheet> findByEmployee(Employee employee);
	List<AttendanceSheet> findByCustomer(Customer customer);
	List<AttendanceSheet> findByService(Service service);
	List<AttendanceSheet> findByProduct(Product product);
	List<AttendanceSheet> listBookingsByDay(Calendar date);
	List<AttendanceSheet> findBusyEmployee(Calendar date);
	
}